package com.bigpang.framework.redis.baseopt.key;

import redis.clients.jedis.Jedis;

/**
 * @Author YongQiang
 * @Date 2021/6/3 16:16
 * @Version 1.0
 */
public class KeyDemo {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("10.130.132.137",6379);
/*
        jedis.set("test1", String.valueOf(1));
        jedis.set("test2", "哈哈哈");
        jedis.set("test3", String.valueOf(3));
        jedis.set("test4", String.valueOf(4));
        jedis.set("test5", String.valueOf(5));
        jedis.set("test6", String.valueOf(6));
        jedis.set("test7", String.valueOf(7));
        jedis.set("test8", String.valueOf(8));
        jedis.set("test9", String.valueOf(9));
        jedis.set("test10", String.valueOf(10));
        jedis.set("test11", String.valueOf(11));
        jedis.set("newkey",String.valueOf(12));

        //EXISTS key 检查给定 key 是否存在。
        System.out.println("test1是否存在:"+jedis.exists("test1"));
        //EXPIRE key seconds 为给定 key 设置过期时间。
        jedis.expire("test1",1000);
        //EXPIREAT key timestamp EXPIREAT 的作用和 EXPIRE 类似，都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。
        //jedis.expireAt("test1",1000);
        //DUMP key 序列化给定 key ，并返回被序列化的值。
        System.out.println("test3序列化后的值"+jedis.dump("test3"));
        //DEL key 该命令用于在 key 存在是删除 key。
        jedis.del("test8");
        //PEXPIRE key milliseconds 设置 key 的过期时间亿以毫秒计。
        jedis.pexpire("test5",1000);
        //PEXPIREAT key milliseconds-timestamp 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计
        jedis.pexpireAt("test5",2000);
        // 	KEYS pattern 查找所有符合给定模式( pattern)的 key 。
        System.out.println("查找test类型的key："+jedis.keys("test"));
        //	MOVE key db 将当前数据库的 key 移动到给定的数据库 db 当中。
        jedis.move("newkey",2);
        //PERSIST key 移除 key 的过期时间，key 将持久保持。
        jedis.persist("test1");
        //	PTTL key 以毫秒为单位返回 key 的剩余的过期时间。
        System.out.println("test1的过期时间"+jedis.pttl("test1")+"ms");
        System.out.println("test5的过期时间"+jedis.pttl("test5")+"ms");
        //TTL key 以秒为单位，返回给定 key 的剩余生存时间(TTL, time to live)。
        System.out.println("test1的过期时间"+jedis.ttl("test1")+"s");
        System.out.println("test5的过期时间"+jedis.ttl("test5")+"s");
        //RANDOMKEY 从当前数据库中随机返回一个 key 。
        System.out.println("随机返回一个key"+jedis.randomKey());
        System.out.println("随机返回一个key"+jedis.randomKey());
        //RENAME key newkey 修改 key 的名称
        System.out.println(jedis.rename("test6", "test12"));
        //RENAMENX key newkey 仅当 newkey 不存在时，将 key 改名为 newkey 。
        System.out.println(jedis.renamenx("test7", "test11"));
        //TYPE key 返回 key 所储存的值的类型。
        System.out.println("test1的value类型"+jedis.type("test1"));
        System.out.println("test2的value类型"+jedis.type("test2"));*/

        Long del = jedis.del("hyperkey");
        System.out.println(del);
        jedis.close();
    }
}
